iT邦幫忙

2023 iThome 鐵人賽

DAY 28
0
自我挑戰組

一個營建系學生的韌體之路-自走車篇系列 第 28

【AMR_Day28】車道偵測概述

  • 分享至 

  • xImage
  •  

ADAS

很常被親戚朋友們問我的研究再做什麼? 要畢業了沒?
https://ithelp.ithome.com.tw/upload/images/20231013/20140433LoO3WSeL8e.jpg
梗圖來源
若我回答自走車,經常會被以為是腳踏車(自行車)。這時候改成回答『類似自駕車』反而好像輕鬆一點。
大家普遍都知道自駕車大概包含哪些功能,盲點偵測、自動跟車、前方碰撞警示系統等等,這些都被稱為『高級輔助駕駛系統(Advanced Driver Assistance Systems、ADAS)』,ADAS的主要用途就會為了幫助人們實現安全的駕駛,根據美國汽車工程師協會(SAE)自動駕駛技術有分為Level0~5,如圖。
SAE
圖片來源:SAE
其中還有一項技術與我息息相關,叫『車道偏離警示系統(Lane Departure Warning System、LDWS)』,它的任務是使駕駛人能在未打方向燈卻偏離車道時發出示警訊號,那接下來就來講講車道如何被辨識。

車道辨識

車道辨識的方法很多,首先影響最大的感測器種類,相機?光達?紅外線?不同的感測器會造成資料處理的方式不一樣,那我只針對相機產生的『影像』和光達產生的『點雲』來講講。

影像處理

主線車道
圖片來源:高公局
我們人透過分辨柏油的黑色路面與白色的車道線可以得知車道的範圍,電腦也差不多。所以我們現在主要目標就是教會電腦判斷白色的部份代表車道線,被車道線切割出來的黑色部份就代表車道。
中間過程包含各種影像處理,彩色影像處理、邊緣偵測、ROI分割處理、線性偵測等等。

這個每個過程的原理都是博大精深阿~我這學期旁聽了一門影像處理課,光是黑白影像就有各種演算法了!
這些演算法除了運用在影像上,也可以用於光達的點雲處理,點雲也是需要邊緣偵測、分割、線性偵測等等。基本上搞懂原理,程式碼也不用自己寫出來,如【AMR_Day5】中就提到了openCV這些開源的函式庫。
更多車道辨識的openCV實際操作:辨識出公路上的道路標線自駕車學習之路(二)
針對影像處理的部份我也還是小小菜雞,大部分的知識來源都是由網路上的前人們提供,這就是我學習歷程的筆記~

那我能提供的是自己使用PCL邊緣偵測的一些心得

PCL邊緣偵測

沒錯,PCL點雲函式庫中也有邊緣偵測的部份,PCL Tutorials提供RangeImageBorderExtractor的方法,這是先把點雲資訊轉換成range image(深度圖)後才做找邊緣的動作做,所以可以抓出物體本身的邊緣及物體影子陰影的邊緣,以及它們之間的雜點。
RangeImageBorderExtractor
另外一個函式是BoundaryEstimation,在PCL Tutorials中沒有被提到,但可以在PCL Docs中查詢到,它與前者的不同之處,它就是直接抓出一組點雲的邊界,原理是利用邊緣的點夾角會明顯大於內點們來辨識。

明天介紹線性演算法


上一篇
【AMR_Day27】F1TENTH & Wall following
下一篇
【AMR_Day29】直線的偵測
系列文
一個營建系學生的韌體之路-自走車篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言